load libraries

library(ggplot2)
library(data.table)
library(stringr)
library(dplyr)
library(tidyr)
library(rprojroot)
library(wesanderson)
Registered S3 method overwritten by 'wesanderson':
  method        from              
  print.palette nationalparkcolors
library(factoextra)
Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(FactoMineR)
library(nationalparkcolors)
library(cluster)
library(magrittr)

Attaching package: ‘magrittr’

The following object is masked from ‘package:tidyr’:

    extract
library(NbClust)
library(clustree)
Loading required package: ggraph

set paths and filenames

### files
subset_table=sprintf("%s/intermediate_files/prev_SGBs_cluster_assignments_long_abundance.tsv",
                     find_rstudio_root_file())
metadata_table=sprintf("%s/data/some_teddy_MP142_metadata2.all_samples1.delivery.csv",
                       find_rstudio_root_file())
#iphop_table=sprintf("%s/data/TGVG_database_v1.1.exemplars.iphop_genus_outputs1.filt.csv",
#                    find_rstudio_root_file())

#long_table=sprintf("%s/data/mp142_TGVG1.1_MPA4_combined_abundance_table_longform1.tsv",
#                   find_rstudio_root_file())

get subset table

subset_dt <- fread(subset_table, header = T, sep = "\t")

species -> assignment labels

species_sub_dt <- subset_dt %>%
  distinct(species, assignment)

make wider

subset_self_wide_dt <- subset_dt %>%
  select(c(species, rounded_DOL, self_rel_abund)) %>%
  pivot_wider(names_from = rounded_DOL, 
              values_from = self_rel_abund, 
              values_fill = 0)


species_l <- subset_self_wide_dt$species


subset_self_wide_dt <- subset_self_wide_dt %>% select(-species)

calc PCA

subset_prcomp1 <- prcomp(subset_self_wide_dt)

subset_PCA_dt <-as.data.frame(subset_prcomp1$x[,1:5])

setDT(subset_PCA_dt)

subset_PCA_dt$species <- species_l


subset_assign_PCA_dt <- merge(subset_PCA_dt, species_sub_dt,
                              by = "species")

plot PCA

subset_assign_PCA_dt %>%
  ggplot(aes(x = PC1, y = PC2, color = assignment)) +
  geom_point(alpa = 0.3) +
  theme_bw()
Warning in geom_point(alpa = 0.3) :
  Ignoring unknown parameters: `alpa`

calc tSNE

emb_bac <- Rtsne::Rtsne(subset_prcomp1$x[,1:10], perplexity = 30)

embb_bac <- as.data.frame(emb_bac$Y)

setDT(embb_bac)

embb_bac$species <- species_l


subset_assign_tSNE_dt <- merge(embb_bac, species_sub_dt,
                              by = "species")
#wes_palette("Darjeeling1", 8, type = "continuous")
pal <- park_palette("Arches")
coul <- colorRampPalette(pal)(8)

subset_tsne_p <- subset_assign_tSNE_dt %>%
  ggplot(aes(x = V1, y = V2, fill = assignment)) +
  geom_point(alpha = 0.85, 
             shape = 21,
             color = "black",
             size = 3) +
  labs(x = "t-SNE 1",
       y = "t-SNE 2") +
  theme_bw() +
  scale_fill_manual(values = coul)

subset_tsne_p

ggsave(
  subset_tsne_p,
  file = sprintf("%s/charts/temporal_subset_tsne1.pdf",
                       find_rstudio_root_file()), 
  width = 8, height= 5
)

check stats on PCA

subset_pca <- PCA(subset_self_wide_dt,  graph = FALSE)
# Visualize eigenvalues/variances
fviz_screeplot(subset_pca, addlabels = TRUE, ylim = c(0, 41))

# Extract the results for variables
var <- get_pca_var(subset_pca)
# Contributions of variables to PC1
fviz_contrib(subset_pca, choice = "var", axes = 1, top = 10)

# Contributions of variables to PC2
fviz_contrib(subset_pca, choice = "var", axes = 2, top = 10)

# Control variable colors using their contributions to the principle axis
fviz_pca_var(subset_pca, col.var="contrib",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE # Avoid text overlapping
             ) + theme_minimal() + ggtitle("Variables - PCA")

fviz_nbclust(subset_self_wide_dt, kmeans, method = "wss", k.max = 24) + 
  theme_minimal() + 
  ggtitle("the Elbow Method")

fviz_nbclust(subset_self_wide_dt, kmeans, method = "silhouette", k.max = 24) + 
  theme_minimal() + 
  ggtitle("The Silhouette Plot")
Warning: did not converge in 10 iterations

gap_stat <- clusGap(subset_self_wide_dt, 
                    FUN = kmeans, 
                    nstart = 30, 
                    K.max = 24, 
                    B = 50)
Clustering k = 1,2,..., K.max (= 24): .. 
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
done
Bootstrapping, b = 1,2,..., B (= 50)  [one "." per sample]:
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
.
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
. 50 
fviz_gap_stat(gap_stat) + 
  theme_minimal() + 
  ggtitle("fviz_gap_stat: Gap Statistic")

kmean_calc <- function(df, ...){
  kmeans(df, scaled = ..., nstart = 30)
}
km2 <- kmean_calc(subset_self_wide_dt, 2)
km3 <- kmean_calc(subset_self_wide_dt, 3)
km4 <- kmeans(subset_self_wide_dt, 4)
km5 <- kmeans(subset_self_wide_dt, 5)
km6 <- kmeans(subset_self_wide_dt, 6)
km7 <- kmeans(subset_self_wide_dt, 7)
km8 <- kmeans(subset_self_wide_dt, 8)
km9 <- kmeans(subset_self_wide_dt, 9)
km10 <- kmeans(subset_self_wide_dt, 10)
km11 <- kmeans(subset_self_wide_dt, 11)
p1 <- fviz_cluster(km2, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() + 
  ggtitle("k = 2") 
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
p2 <- fviz_cluster(km3, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() + 
  ggtitle("k = 3")
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
p3 <- fviz_cluster(km4, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() + 
  ggtitle("k = 4")
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
p4 <- fviz_cluster(km5, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() + 
  ggtitle("k = 5")
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
p5 <- fviz_cluster(km6, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() +
  ggtitle("k = 6")
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
p6 <- fviz_cluster(km7, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() + 
  ggtitle("k = 7")
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
p7 <- fviz_cluster(km8, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() + 
  ggtitle("k = 8")
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
p8 <- fviz_cluster(km9, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() + 
  ggtitle("k = 9")
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
p9 <- fviz_cluster(km10, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() + 
  ggtitle("k = 10")
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
p10 <- fviz_cluster(km11, data = subset_self_wide_dt, 
                   frame.type = "convex",
                   labelsize = 0) + theme_minimal() + 
  ggtitle("k = 11")
Warning: argument frame is deprecated; please use ellipse instead.
Warning: argument frame.type is deprecated; please use ellipse.type instead.
cowplot::plot_grid(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10,
                   labels = c("k2", "k3", "k4", "k5", "k6", "k7"))

ssc <- data.frame(
  kmeans = c(2,3,4,5,6,7,8,9,10,11),
  within_ss = c(mean(km2$withinss), mean(km3$withinss), 
                mean(km4$withinss), mean(km5$withinss), 
                mean(km6$withinss), mean(km7$withinss), 
                mean(km8$withinss), mean(km9$withinss),
                mean(km10$withinss),mean(km11$withinss)),
  between_ss = c(km2$betweenss, km3$betweenss, km4$betweenss, 
                 km5$betweenss, km6$betweenss, km7$betweenss,
                 km8$betweenss, km9$betweenss, km10$betweenss,
                 km11$betweenss)
)
ssc %<>% gather(., key = "measurement", value = value, -kmeans)

#ssc$value <- log10(ssc$value)

ssc %>% ggplot(., aes(x=kmeans, y=log10(value), fill = measurement)) +
  geom_bar(stat = "identity", position = "dodge") + 
  ggtitle("Cluster Model Comparison") + 
  xlab("Number of Clusters") + 
  ylab("Log10 Total Sum of Squares") + 
  scale_x_discrete(name = "Number of Clusters", 
                   limits = c("0", "2", "3", "4", "5", "6", 
                              "7", "8", "9", "10", "11"))

res.nbclust <- NbClust(subset_self_wide_dt, distance = "euclidean",
                  min.nc = 2, max.nc = 14, 
                  method = "complete", index ="all")
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
Warning in log(det(P)/det(W)) : NaNs produced
*** : The Hubert index is a graphical method of determining the number of clusters.
                In the plot of Hubert index, we seek a significant knee that corresponds to a 
                significant increase of the value of the measure i.e the significant peak in Hubert
                index second differences plot. 
 

*** : The D index is a graphical method of determining the number of clusters. 
                In the plot of D index, we seek a significant knee (the significant peak in Dindex
                second differences plot) that corresponds to a significant increase of the value of
                the measure. 
 
******************************************************************* 
* Among all indices:                                                
* 7 proposed 2 as the best number of clusters 
* 2 proposed 3 as the best number of clusters 
* 3 proposed 5 as the best number of clusters 
* 7 proposed 6 as the best number of clusters 
* 1 proposed 10 as the best number of clusters 
* 1 proposed 11 as the best number of clusters 
* 1 proposed 12 as the best number of clusters 
* 2 proposed 14 as the best number of clusters 

                   ***** Conclusion *****                            
 
* According to the majority rule, the best number of clusters is  2 
 
 
******************************************************************* 

tmp <- NULL

for (k in 1:11){
  tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30)
}
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning: did not converge in 10 iterations
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
Warning in tmp[k] <- kmeans(subset_self_wide_dt, k, nstart = 30) :
  number of items to replace is not a multiple of replacement length
df <- data.frame(tmp)# add a prefix to the column names

colnames(df) <- seq(1:11)

colnames(df) <- paste0("k",colnames(df))# get individual PCA

df.pca <- prcomp(df, center = TRUE, scale. = FALSE)

ind.coord <- df.pca$x

ind.coord <- ind.coord[,1:2]

df <- bind_cols(as.data.frame(df), as.data.frame(ind.coord))

clustree(df, prefix = "k")

LS0tCnRpdGxlOiAiVmFsaWRhdGUgdGVtcG9yYWwgc3Vic2V0cyB2aWEgY2x1c3RlcmluZyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKbG9hZCBsaWJyYXJpZXMKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShkYXRhLnRhYmxlKQpsaWJyYXJ5KHN0cmluZ3IpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkocnByb2pyb290KQpsaWJyYXJ5KHdlc2FuZGVyc29uKQpsaWJyYXJ5KGZhY3RvZXh0cmEpCmxpYnJhcnkoRmFjdG9NaW5lUikKbGlicmFyeShuYXRpb25hbHBhcmtjb2xvcnMpCmxpYnJhcnkoY2x1c3RlcikKbGlicmFyeShtYWdyaXR0cikKbGlicmFyeShOYkNsdXN0KQpsaWJyYXJ5KGNsdXN0cmVlKQpgYGAKCnNldCBwYXRocyBhbmQgZmlsZW5hbWVzCgpgYGB7cn0KIyMjIGZpbGVzCnN1YnNldF90YWJsZT1zcHJpbnRmKCIlcy9pbnRlcm1lZGlhdGVfZmlsZXMvcHJldl9TR0JzX2NsdXN0ZXJfYXNzaWdubWVudHNfbG9uZ19hYnVuZGFuY2UudHN2IiwKICAgICAgICAgICAgICAgICAgICAgZmluZF9yc3R1ZGlvX3Jvb3RfZmlsZSgpKQptZXRhZGF0YV90YWJsZT1zcHJpbnRmKCIlcy9kYXRhL3NvbWVfdGVkZHlfTVAxNDJfbWV0YWRhdGEyLmFsbF9zYW1wbGVzMS5kZWxpdmVyeS5jc3YiLAogICAgICAgICAgICAgICAgICAgICAgIGZpbmRfcnN0dWRpb19yb290X2ZpbGUoKSkKI2lwaG9wX3RhYmxlPXNwcmludGYoIiVzL2RhdGEvVEdWR19kYXRhYmFzZV92MS4xLmV4ZW1wbGFycy5pcGhvcF9nZW51c19vdXRwdXRzMS5maWx0LmNzdiIsCiMgICAgICAgICAgICAgICAgICAgIGZpbmRfcnN0dWRpb19yb290X2ZpbGUoKSkKCiNsb25nX3RhYmxlPXNwcmludGYoIiVzL2RhdGEvbXAxNDJfVEdWRzEuMV9NUEE0X2NvbWJpbmVkX2FidW5kYW5jZV90YWJsZV9sb25nZm9ybTEudHN2IiwKIyAgICAgICAgICAgICAgICAgICBmaW5kX3JzdHVkaW9fcm9vdF9maWxlKCkpCgpgYGAKCmdldCBzdWJzZXQgdGFibGUKYGBge3J9CnN1YnNldF9kdCA8LSBmcmVhZChzdWJzZXRfdGFibGUsIGhlYWRlciA9IFQsIHNlcCA9ICJcdCIpCgoKYGBgCgpzcGVjaWVzIC0+IGFzc2lnbm1lbnQgbGFiZWxzCmBgYHtyfQpzcGVjaWVzX3N1Yl9kdCA8LSBzdWJzZXRfZHQgJT4lCiAgZGlzdGluY3Qoc3BlY2llcywgYXNzaWdubWVudCkKYGBgCgptYWtlIHdpZGVyCmBgYHtyfQpzdWJzZXRfc2VsZl93aWRlX2R0IDwtIHN1YnNldF9kdCAlPiUKICBzZWxlY3QoYyhzcGVjaWVzLCByb3VuZGVkX0RPTCwgc2VsZl9yZWxfYWJ1bmQpKSAlPiUKICBwaXZvdF93aWRlcihuYW1lc19mcm9tID0gcm91bmRlZF9ET0wsIAogICAgICAgICAgICAgIHZhbHVlc19mcm9tID0gc2VsZl9yZWxfYWJ1bmQsIAogICAgICAgICAgICAgIHZhbHVlc19maWxsID0gMCkKCgpzcGVjaWVzX2wgPC0gc3Vic2V0X3NlbGZfd2lkZV9kdCRzcGVjaWVzCgoKc3Vic2V0X3NlbGZfd2lkZV9kdCA8LSBzdWJzZXRfc2VsZl93aWRlX2R0ICU+JSBzZWxlY3QoLXNwZWNpZXMpCgoKYGBgCgpjYWxjIFBDQQpgYGB7cn0Kc3Vic2V0X3ByY29tcDEgPC0gcHJjb21wKHN1YnNldF9zZWxmX3dpZGVfZHQpCgpzdWJzZXRfUENBX2R0IDwtYXMuZGF0YS5mcmFtZShzdWJzZXRfcHJjb21wMSR4WywxOjVdKQoKc2V0RFQoc3Vic2V0X1BDQV9kdCkKCnN1YnNldF9QQ0FfZHQkc3BlY2llcyA8LSBzcGVjaWVzX2wKCgpzdWJzZXRfYXNzaWduX1BDQV9kdCA8LSBtZXJnZShzdWJzZXRfUENBX2R0LCBzcGVjaWVzX3N1Yl9kdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgPSAic3BlY2llcyIpCmBgYAoKcGxvdCBQQ0EKYGBge3J9CnN1YnNldF9hc3NpZ25fUENBX2R0ICU+JQogIGdncGxvdChhZXMoeCA9IFBDMSwgeSA9IFBDMiwgY29sb3IgPSBhc3NpZ25tZW50KSkgKwogIGdlb21fcG9pbnQoYWxwYSA9IDAuMykgKwogIHRoZW1lX2J3KCkKYGBgCgpjYWxjIHRTTkUKYGBge3J9CmVtYl9iYWMgPC0gUnRzbmU6OlJ0c25lKHN1YnNldF9wcmNvbXAxJHhbLDE6MTBdLCBwZXJwbGV4aXR5ID0gMzApCgplbWJiX2JhYyA8LSBhcy5kYXRhLmZyYW1lKGVtYl9iYWMkWSkKCnNldERUKGVtYmJfYmFjKQoKZW1iYl9iYWMkc3BlY2llcyA8LSBzcGVjaWVzX2wKCgpzdWJzZXRfYXNzaWduX3RTTkVfZHQgPC0gbWVyZ2UoZW1iYl9iYWMsIHNwZWNpZXNfc3ViX2R0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSA9ICJzcGVjaWVzIikKYGBgCgpgYGB7cn0KI3dlc19wYWxldHRlKCJEYXJqZWVsaW5nMSIsIDgsIHR5cGUgPSAiY29udGludW91cyIpCnBhbCA8LSBwYXJrX3BhbGV0dGUoIkFyY2hlcyIpCmNvdWwgPC0gY29sb3JSYW1wUGFsZXR0ZShwYWwpKDgpCgpzdWJzZXRfdHNuZV9wIDwtIHN1YnNldF9hc3NpZ25fdFNORV9kdCAlPiUKICBnZ3Bsb3QoYWVzKHggPSBWMSwgeSA9IFYyLCBmaWxsID0gYXNzaWdubWVudCkpICsKICBnZW9tX3BvaW50KGFscGhhID0gMC44NSwgCiAgICAgICAgICAgICBzaGFwZSA9IDIxLAogICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLAogICAgICAgICAgICAgc2l6ZSA9IDMpICsKICBsYWJzKHggPSAidC1TTkUgMSIsCiAgICAgICB5ID0gInQtU05FIDIiKSArCiAgdGhlbWVfYncoKSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY291bCkKCnN1YnNldF90c25lX3AKCmdnc2F2ZSgKICBzdWJzZXRfdHNuZV9wLAogIGZpbGUgPSBzcHJpbnRmKCIlcy9jaGFydHMvdGVtcG9yYWxfc3Vic2V0X3RzbmUxLnBkZiIsCiAgICAgICAgICAgICAgICAgICAgICAgZmluZF9yc3R1ZGlvX3Jvb3RfZmlsZSgpKSwgCiAgd2lkdGggPSA4LCBoZWlnaHQ9IDUKKQpgYGAKY2hlY2sgc3RhdHMgb24gUENBCmBgYHtyfQpzdWJzZXRfcGNhIDwtIFBDQShzdWJzZXRfc2VsZl93aWRlX2R0LCAgZ3JhcGggPSBGQUxTRSkKIyBWaXN1YWxpemUgZWlnZW52YWx1ZXMvdmFyaWFuY2VzCmZ2aXpfc2NyZWVwbG90KHN1YnNldF9wY2EsIGFkZGxhYmVscyA9IFRSVUUsIHlsaW0gPSBjKDAsIDQxKSkKYGBgCgpgYGB7cn0KIyBFeHRyYWN0IHRoZSByZXN1bHRzIGZvciB2YXJpYWJsZXMKdmFyIDwtIGdldF9wY2FfdmFyKHN1YnNldF9wY2EpCiMgQ29udHJpYnV0aW9ucyBvZiB2YXJpYWJsZXMgdG8gUEMxCmZ2aXpfY29udHJpYihzdWJzZXRfcGNhLCBjaG9pY2UgPSAidmFyIiwgYXhlcyA9IDEsIHRvcCA9IDEwKQojIENvbnRyaWJ1dGlvbnMgb2YgdmFyaWFibGVzIHRvIFBDMgpmdml6X2NvbnRyaWIoc3Vic2V0X3BjYSwgY2hvaWNlID0gInZhciIsIGF4ZXMgPSAyLCB0b3AgPSAxMCkKIyBDb250cm9sIHZhcmlhYmxlIGNvbG9ycyB1c2luZyB0aGVpciBjb250cmlidXRpb25zIHRvIHRoZSBwcmluY2lwbGUgYXhpcwpmdml6X3BjYV92YXIoc3Vic2V0X3BjYSwgY29sLnZhcj0iY29udHJpYiIsCiAgICAgICAgICAgICBncmFkaWVudC5jb2xzID0gYygiIzAwQUZCQiIsICIjRTdCODAwIiwgIiNGQzRFMDciKSwKICAgICAgICAgICAgIHJlcGVsID0gVFJVRSAjIEF2b2lkIHRleHQgb3ZlcmxhcHBpbmcKICAgICAgICAgICAgICkgKyB0aGVtZV9taW5pbWFsKCkgKyBnZ3RpdGxlKCJWYXJpYWJsZXMgLSBQQ0EiKQpgYGAKCmBgYHtyfQpmdml6X25iY2x1c3Qoc3Vic2V0X3NlbGZfd2lkZV9kdCwga21lYW5zLCBtZXRob2QgPSAid3NzIiwgay5tYXggPSAyNCkgKyAKICB0aGVtZV9taW5pbWFsKCkgKyAKICBnZ3RpdGxlKCJ0aGUgRWxib3cgTWV0aG9kIikKYGBgCgpgYGB7cn0KZnZpel9uYmNsdXN0KHN1YnNldF9zZWxmX3dpZGVfZHQsIGttZWFucywgbWV0aG9kID0gInNpbGhvdWV0dGUiLCBrLm1heCA9IDI0KSArIAogIHRoZW1lX21pbmltYWwoKSArIAogIGdndGl0bGUoIlRoZSBTaWxob3VldHRlIFBsb3QiKQpgYGAKCmBgYHtyfQpnYXBfc3RhdCA8LSBjbHVzR2FwKHN1YnNldF9zZWxmX3dpZGVfZHQsIAogICAgICAgICAgICAgICAgICAgIEZVTiA9IGttZWFucywgCiAgICAgICAgICAgICAgICAgICAgbnN0YXJ0ID0gMzAsIAogICAgICAgICAgICAgICAgICAgIEsubWF4ID0gMjQsIAogICAgICAgICAgICAgICAgICAgIEIgPSA1MCkKCmZ2aXpfZ2FwX3N0YXQoZ2FwX3N0YXQpICsgCiAgdGhlbWVfbWluaW1hbCgpICsgCiAgZ2d0aXRsZSgiZnZpel9nYXBfc3RhdDogR2FwIFN0YXRpc3RpYyIpCmBgYAoKYGBge3J9CmttZWFuX2NhbGMgPC0gZnVuY3Rpb24oZGYsIC4uLil7CiAga21lYW5zKGRmLCBzY2FsZWQgPSAuLi4sIG5zdGFydCA9IDMwKQp9CmttMiA8LSBrbWVhbl9jYWxjKHN1YnNldF9zZWxmX3dpZGVfZHQsIDIpCmttMyA8LSBrbWVhbl9jYWxjKHN1YnNldF9zZWxmX3dpZGVfZHQsIDMpCmttNCA8LSBrbWVhbnMoc3Vic2V0X3NlbGZfd2lkZV9kdCwgNCkKa201IDwtIGttZWFucyhzdWJzZXRfc2VsZl93aWRlX2R0LCA1KQprbTYgPC0ga21lYW5zKHN1YnNldF9zZWxmX3dpZGVfZHQsIDYpCmttNyA8LSBrbWVhbnMoc3Vic2V0X3NlbGZfd2lkZV9kdCwgNykKa204IDwtIGttZWFucyhzdWJzZXRfc2VsZl93aWRlX2R0LCA4KQprbTkgPC0ga21lYW5zKHN1YnNldF9zZWxmX3dpZGVfZHQsIDkpCmttMTAgPC0ga21lYW5zKHN1YnNldF9zZWxmX3dpZGVfZHQsIDEwKQprbTExIDwtIGttZWFucyhzdWJzZXRfc2VsZl93aWRlX2R0LCAxMSkKcDEgPC0gZnZpel9jbHVzdGVyKGttMiwgZGF0YSA9IHN1YnNldF9zZWxmX3dpZGVfZHQsIAogICAgICAgICAgICAgICAgICAgZnJhbWUudHlwZSA9ICJjb252ZXgiLAogICAgICAgICAgICAgICAgICAgbGFiZWxzaXplID0gMCkgKyB0aGVtZV9taW5pbWFsKCkgKyAKICBnZ3RpdGxlKCJrID0gMiIpIApwMiA8LSBmdml6X2NsdXN0ZXIoa20zLCBkYXRhID0gc3Vic2V0X3NlbGZfd2lkZV9kdCwgCiAgICAgICAgICAgICAgICAgICBmcmFtZS50eXBlID0gImNvbnZleCIsCiAgICAgICAgICAgICAgICAgICBsYWJlbHNpemUgPSAwKSArIHRoZW1lX21pbmltYWwoKSArIAogIGdndGl0bGUoImsgPSAzIikKcDMgPC0gZnZpel9jbHVzdGVyKGttNCwgZGF0YSA9IHN1YnNldF9zZWxmX3dpZGVfZHQsIAogICAgICAgICAgICAgICAgICAgZnJhbWUudHlwZSA9ICJjb252ZXgiLAogICAgICAgICAgICAgICAgICAgbGFiZWxzaXplID0gMCkgKyB0aGVtZV9taW5pbWFsKCkgKyAKICBnZ3RpdGxlKCJrID0gNCIpCnA0IDwtIGZ2aXpfY2x1c3RlcihrbTUsIGRhdGEgPSBzdWJzZXRfc2VsZl93aWRlX2R0LCAKICAgICAgICAgICAgICAgICAgIGZyYW1lLnR5cGUgPSAiY29udmV4IiwKICAgICAgICAgICAgICAgICAgIGxhYmVsc2l6ZSA9IDApICsgdGhlbWVfbWluaW1hbCgpICsgCiAgZ2d0aXRsZSgiayA9IDUiKQpwNSA8LSBmdml6X2NsdXN0ZXIoa202LCBkYXRhID0gc3Vic2V0X3NlbGZfd2lkZV9kdCwgCiAgICAgICAgICAgICAgICAgICBmcmFtZS50eXBlID0gImNvbnZleCIsCiAgICAgICAgICAgICAgICAgICBsYWJlbHNpemUgPSAwKSArIHRoZW1lX21pbmltYWwoKSArCiAgZ2d0aXRsZSgiayA9IDYiKQpwNiA8LSBmdml6X2NsdXN0ZXIoa203LCBkYXRhID0gc3Vic2V0X3NlbGZfd2lkZV9kdCwgCiAgICAgICAgICAgICAgICAgICBmcmFtZS50eXBlID0gImNvbnZleCIsCiAgICAgICAgICAgICAgICAgICBsYWJlbHNpemUgPSAwKSArIHRoZW1lX21pbmltYWwoKSArIAogIGdndGl0bGUoImsgPSA3IikKcDcgPC0gZnZpel9jbHVzdGVyKGttOCwgZGF0YSA9IHN1YnNldF9zZWxmX3dpZGVfZHQsIAogICAgICAgICAgICAgICAgICAgZnJhbWUudHlwZSA9ICJjb252ZXgiLAogICAgICAgICAgICAgICAgICAgbGFiZWxzaXplID0gMCkgKyB0aGVtZV9taW5pbWFsKCkgKyAKICBnZ3RpdGxlKCJrID0gOCIpCnA4IDwtIGZ2aXpfY2x1c3RlcihrbTksIGRhdGEgPSBzdWJzZXRfc2VsZl93aWRlX2R0LCAKICAgICAgICAgICAgICAgICAgIGZyYW1lLnR5cGUgPSAiY29udmV4IiwKICAgICAgICAgICAgICAgICAgIGxhYmVsc2l6ZSA9IDApICsgdGhlbWVfbWluaW1hbCgpICsgCiAgZ2d0aXRsZSgiayA9IDkiKQpwOSA8LSBmdml6X2NsdXN0ZXIoa20xMCwgZGF0YSA9IHN1YnNldF9zZWxmX3dpZGVfZHQsIAogICAgICAgICAgICAgICAgICAgZnJhbWUudHlwZSA9ICJjb252ZXgiLAogICAgICAgICAgICAgICAgICAgbGFiZWxzaXplID0gMCkgKyB0aGVtZV9taW5pbWFsKCkgKyAKICBnZ3RpdGxlKCJrID0gMTAiKQpwMTAgPC0gZnZpel9jbHVzdGVyKGttMTEsIGRhdGEgPSBzdWJzZXRfc2VsZl93aWRlX2R0LCAKICAgICAgICAgICAgICAgICAgIGZyYW1lLnR5cGUgPSAiY29udmV4IiwKICAgICAgICAgICAgICAgICAgIGxhYmVsc2l6ZSA9IDApICsgdGhlbWVfbWluaW1hbCgpICsgCiAgZ2d0aXRsZSgiayA9IDExIikKCmNvd3Bsb3Q6OnBsb3RfZ3JpZChwMSwgcDIsIHAzLCBwNCwgcDUsIHA2LCBwNywgcDgsIHA5LCBwMTAsCiAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJrMiIsICJrMyIsICJrNCIsICJrNSIsICJrNiIsICJrNyIpKQpgYGAKCmBgYHtyfQpzc2MgPC0gZGF0YS5mcmFtZSgKICBrbWVhbnMgPSBjKDIsMyw0LDUsNiw3LDgsOSwxMCwxMSksCiAgd2l0aGluX3NzID0gYyhtZWFuKGttMiR3aXRoaW5zcyksIG1lYW4oa20zJHdpdGhpbnNzKSwgCiAgICAgICAgICAgICAgICBtZWFuKGttNCR3aXRoaW5zcyksIG1lYW4oa201JHdpdGhpbnNzKSwgCiAgICAgICAgICAgICAgICBtZWFuKGttNiR3aXRoaW5zcyksIG1lYW4oa203JHdpdGhpbnNzKSwgCiAgICAgICAgICAgICAgICBtZWFuKGttOCR3aXRoaW5zcyksIG1lYW4oa205JHdpdGhpbnNzKSwKICAgICAgICAgICAgICAgIG1lYW4oa20xMCR3aXRoaW5zcyksbWVhbihrbTExJHdpdGhpbnNzKSksCiAgYmV0d2Vlbl9zcyA9IGMoa20yJGJldHdlZW5zcywga20zJGJldHdlZW5zcywga200JGJldHdlZW5zcywgCiAgICAgICAgICAgICAgICAga201JGJldHdlZW5zcywga202JGJldHdlZW5zcywga203JGJldHdlZW5zcywKICAgICAgICAgICAgICAgICBrbTgkYmV0d2VlbnNzLCBrbTkkYmV0d2VlbnNzLCBrbTEwJGJldHdlZW5zcywKICAgICAgICAgICAgICAgICBrbTExJGJldHdlZW5zcykKKQpzc2MgJTw+JSBnYXRoZXIoLiwga2V5ID0gIm1lYXN1cmVtZW50IiwgdmFsdWUgPSB2YWx1ZSwgLWttZWFucykKCiNzc2MkdmFsdWUgPC0gbG9nMTAoc3NjJHZhbHVlKQoKc3NjICU+JSBnZ3Bsb3QoLiwgYWVzKHg9a21lYW5zLCB5PWxvZzEwKHZhbHVlKSwgZmlsbCA9IG1lYXN1cmVtZW50KSkgKwogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiLCBwb3NpdGlvbiA9ICJkb2RnZSIpICsgCiAgZ2d0aXRsZSgiQ2x1c3RlciBNb2RlbCBDb21wYXJpc29uIikgKyAKICB4bGFiKCJOdW1iZXIgb2YgQ2x1c3RlcnMiKSArIAogIHlsYWIoIkxvZzEwIFRvdGFsIFN1bSBvZiBTcXVhcmVzIikgKyAKICBzY2FsZV94X2Rpc2NyZXRlKG5hbWUgPSAiTnVtYmVyIG9mIENsdXN0ZXJzIiwgCiAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKCIwIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNyIsICI4IiwgIjkiLCAiMTAiLCAiMTEiKSkKYGBgCgoKYGBge3J9CnJlcy5uYmNsdXN0IDwtIE5iQ2x1c3Qoc3Vic2V0X3NlbGZfd2lkZV9kdCwgZGlzdGFuY2UgPSAiZXVjbGlkZWFuIiwKICAgICAgICAgICAgICAgICAgbWluLm5jID0gMiwgbWF4Lm5jID0gMTQsIAogICAgICAgICAgICAgICAgICBtZXRob2QgPSAiY29tcGxldGUiLCBpbmRleCA9ImFsbCIpCgpgYGAKCmBgYHtyfQp0bXAgPC0gTlVMTAoKZm9yIChrIGluIDE6MTEpewogIHRtcFtrXSA8LSBrbWVhbnMoc3Vic2V0X3NlbGZfd2lkZV9kdCwgaywgbnN0YXJ0ID0gMzApCn0KZGYgPC0gZGF0YS5mcmFtZSh0bXApIyBhZGQgYSBwcmVmaXggdG8gdGhlIGNvbHVtbiBuYW1lcwoKY29sbmFtZXMoZGYpIDwtIHNlcSgxOjExKQoKY29sbmFtZXMoZGYpIDwtIHBhc3RlMCgiayIsY29sbmFtZXMoZGYpKSMgZ2V0IGluZGl2aWR1YWwgUENBCgpkZi5wY2EgPC0gcHJjb21wKGRmLCBjZW50ZXIgPSBUUlVFLCBzY2FsZS4gPSBGQUxTRSkKCmluZC5jb29yZCA8LSBkZi5wY2EkeAoKaW5kLmNvb3JkIDwtIGluZC5jb29yZFssMToyXQoKZGYgPC0gYmluZF9jb2xzKGFzLmRhdGEuZnJhbWUoZGYpLCBhcy5kYXRhLmZyYW1lKGluZC5jb29yZCkpCgpjbHVzdHJlZShkZiwgcHJlZml4ID0gImsiKQpgYGAKCgoKCg==